// 引入vue
import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'
// axios.defaults.baseURL = 'https://sign.hxhuiyuan.com';
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

//通过设置请求拦截器 配置post参数序列化
axios.interceptors.request.use(function (config) {
    // 统一处理post请求的参数 为application/x-www-form-urlencode
    if (config.method == 'post') {
        config.data = qs.stringify(config.data)
    }
    return config;
});
// 全局状态控制引入

import router from '../router'



// http request 拦截器
axios.interceptors.request.use(
    config => {
        if (sessionStorage.getItem('token')) {  // 判断是否存在token，如果存在的话，则每个http header都加上token
            config.headers.Authorization = 'bearer' + sessionStorage.getItem('token')
        } else {
            router.replace({
                path: '/login',
                query: { redirect: router.currentRoute.fullPath }
            })
        }
        return config
    },
    err => {
        return Promise.reject(err)
    })
// console.log(1223)
// http response 拦截器
axios.interceptors.response.use(
    undefined,
    error => {
        let res = error.response
        switch (res.status) {
            case 401:
                // 返回 401 清除token信息并跳转到登录页面
                sessionStorage.removeItem('token')
                sessionStorage.removeItem('name')
                this.$router.push({ path: '/login' })
                router.replace({
                    path: '/',
                    query: { redirect: router.currentRoute.fullPath }
                }); break
            case 403:
                alert('您没有该操作权限'); break
            case 422:
                let str = '';
                for (var i in res.data) {
                    str += res.data[i].join(',');
                }
                alert(str); break
            case 500:
                console.log('服务器错误'); break
        }
        return Promise.reject(error.response.data) // 返回接口返回的错误信息
    })
